/**
 * @param {Egg.Application} app - egg application
 */
module.exports = (app) => {
  const { router, controller, middleware, io } = app;
  // 商家注册
  router.post("/api/admin/register", controller.admininfo.adminRegister);
  // 商家登录
  router.post("/api/admin/login", controller.admininfo.adminLogin);
  // 文件上传
  router.post("/api/admin/upload", controller.upload.upload);
  // 商家信息修改
  router.patch("/api/admin/update", middleware.jwt(), controller.admininfo.update);
  // 新增商品类目
  router.post("/api/admin/addCategory", middleware.jwt(), controller.category.addCategory);
  // 获取商品类目
  router.get("/api/admin/getCategory", middleware.jwt(), controller.category.getCategory);
  // 删除商品类目
  router.delete("/api/admin/delCategory/:id", middleware.jwt(), controller.category.delCategory);
  // 获取sku参数
  router.get("/api/admin/getSkuParams", middleware.jwt(), controller.skuParams.getSkuParams);
  // 更新sku参数
  router.post("/api/admin/updateSkuParams", middleware.jwt(), controller.skuParams.updateSkuParams);
  // 删除sku参数
  router.delete("/api/admin/delSkuParams/:_id", middleware.jwt(), controller.skuParams.delSkuParams);
  // sku参数排序
  router.post("/api/admin/exSortSkuParams", middleware.jwt(), controller.skuParams.exSortSkuParams);
  // 获取商品分类
  router.get("/api/admin/getAllCategory", middleware.jwt(), controller.category.getAllCategory);
  // 新增商品
  router.post("/api/admin/addGoods", middleware.jwt(), controller.goods.addGoods);
  // 获取商品列表
  router.get("/api/admin/getGoodsList", middleware.jwt(), controller.goods.getGoodsList);
  // 删除商品
  router.delete("/api/admin/delGoods/:_id", middleware.jwt(), controller.goods.delGoods);
  // 添加推荐商品
  router.post("/api/admin/addRecommendGoods", middleware.jwt(), controller.recommendGoods.addRecommendGoods)
  // 获取推荐商品列表
  router.get("/api/admin/getRecommendGoods", middleware.jwt(), controller.recommendGoods.getRecommendGoods)
  // 删除推荐商品
  router.delete("/api/admin/delRecommendGoods/:_id", middleware.jwt(), controller.recommendGoods.delRecommendGoods)
  // 编辑推荐商品
  router.post("/api/admin/editRecommendGoods", middleware.jwt(), controller.recommendGoods.editRecommendGoods)
  // 新增限时优惠
  router.post("/api/admin/addAccount", middleware.jwt(), controller.account.addAccount)
  // 获取优惠列表
  router.get("/api/admin/getAccountList", middleware.jwt(), controller.account.getAccountList)
  // 编辑优惠商品
  router.post("/api/admin/editAccount", middleware.jwt(), controller.account.editAccount)
  // 删除优惠商品
  router.delete("/api/admin/delAccount/:_id", middleware.jwt(), controller.account.delAccount)

  //小程序端接口
  // 首页轮播数据
  router.get("/api/wx/getSwiper", controller.recommendGoods.getSwiper);
  router.post("/api/wx/monitorRecommendGoods", controller.recommendGoods.monitorRecommendGoods);
  // 获取商家信息
  router.get("/api/wx/getMerchantInfo", controller.admininfo.getMerchantInfo)
  // 获取用户到商家距离
  router.get("/api/wx/getDistance", controller.admininfo.distanceCalculator)
  // 获取用户到商家时长（电动车）
  router.get("/api/wx/getDuration", controller.admininfo.durationCaulcator)
  // 获取分类及对应下的商品
  router.get("/api/wx/getCategoryGoods", controller.category.getCategoryGoods)
  // 获取商品详情
  router.get("/api/wx/getGoodsDetail", controller.goods.getGoodsDetail)
  // 获取商品属性详情（金额及库存）
  router.get("/api/wx/getAttrDetail", controller.attrDetail.getAttrDetail)
  // 模糊搜索商品
  router.get("/api/wx/searchGoodsList", controller.goods.searchGoodsList)
  // 微信小程序登录
  router.get("/api/wx/login", controller.userinfo.wxLogin)
  // 修改用户昵称和头像
  router.post("/api/wx/updateUserInfo", middleware.jwt(), controller.userinfo.updateUserInfo)
  // 创建收货地址
  router.post("/api/wx/createAddress", middleware.jwt(), controller.useradress.createAddress)
  // 设置默认收货地址
  router.post("/api/wx/setDefaultAddress", middleware.jwt(), controller.useradress.setDefaultAddress)
  // 删除收货地址
  router.delete("/api/wx/delAddress/:_id", middleware.jwt(), controller.useradress.deltAddress)
  // 获取所有收货地址
  router.get("/api/wx/getAllAddress", middleware.jwt(), controller.useradress.getAllAddress)
  // 创建订单（不需要微信支付模拟下单调用）
  router.post("/api/wx/createOrder", middleware.jwt(), controller.order.createOrder)
  // 获取订单列表
  router.get("/api/wx/getOrderList", middleware.jwt(), controller.order.getOrderList)
  // 获取订单详情
  router.get("/api/wx/getOrderDetail", middleware.jwt(), controller.order.getOrderDetail)
  // 删除订单
  router.delete("/api/wx/delOrder/:_id", middleware.jwt(), controller.order.delOrder)
  // 获取订单可评价信息
  router.get("/api/wx/getOrderGoods", middleware.jwt(), controller.order.getOrderGoods)
  // 评价订单
  router.post("/api/wx/evalOrder", middleware.jwt(), controller.order.evalOrder)
  // 微信支付
  router.post("/api/wx/wxPay", middleware.jwt(), controller.order.wxPay)
  // 微信支付成功的回调地址
  router.post("/api/wx/notify_url", controller.order.notify_url)

  // im
  // 接收用户端传来的消息
  io.route("userMessage", io.controller.chat.getUserMessage)
  // 接收后台管理员传来的消息
  io.route("adminMessage", io.controller.chat.getAdminMessage)
  io.route("init", io.controller.chat.init)

  // 实验性
  // 抽奖限制频繁请求
  router.get("/lottery", middleware.cache(), controller.trial.limitVehicle)
  // 文件流下载
  router.post("/stream_download", controller.upload.stream_download)
  // 原链接生成短码
  router.post("/createUrl", controller.shortUrl.createUrl)
  // 短码重定向到原链接
  router.get("/sso/login", controller.trial.login)
  router.post("/sso/protected", controller.trial.protected)
};
